Aller au contenu principal

L'écoute des évenements

Vous pouvez gerez les évenements dans l'hyperviseur

Créez une classe pour votre commandes et implémenté là par la classe "Listener" du package be.alexandre01.dreamnetwork

Exemple

public class CustomListener implements Listener {

}

Pour capturer un event vous devez annoter une methode avec @EventCatcher et mettre dans les paramètres de la fonction crée un object étendue par la classe Event.

@EventCatcher
public void onServiceStart(CoreServiceStartEvent e){
System.out.println("Un nouveau serveur c'est allumé, son nom est "+ e.getService().getJvmExecutor().getName() +" et son ID est "+ e.getService().getId());
}
ÉvenementsDescription
CoreServiceStartEventEst appelé lorsqu'un service est démarré.
CoreServiceStopEventEst appelé lorsqu'un service est stoppé.
CoreServiceLinkedEventEst appelé lorsqu'un service est lié à l'hyperviseur.
CoreCommandExecuteEventEst appelé lorsqu'une commande est executé sur l'hyperviseur.
CoreScreenCreateEventEst appelé lorsqu'un screen est crée.

Enregistrement

Une fois la classe créée il vous faut l'enregistrer grace à la DNClientAPI et à la méthode getEventsFactory

@Override
public void start() {
// code en haut

getDnClientAPI().getEventsFactory().registerListener(new CustomListener());
}

Créer des évenements customisé.

Pour ceci crée une classe qui s'étend de l'objet Event

Exemple:

public class BonjourEvent extends Event {
@Getter private String message;

public BonjourEvent(String message) {
this.message = message;
}
}

Et lorsque vous avez besoin de l'appeler vous devez faire un callEvent depuis la méthode getEventsFactory.

DNClientAPI.getInstance().getEventsFactory().callEvent(new BonjourEvent("Bonjour"));

RIEN DE PLUS SIMPLE !

Vous pouvez implémenter la classe Cancellable pour faire un event qui peut etre annulé.

exemple:

@Getter
public class CoreCommandExecuteEvent extends Event implements Cancellable {
private boolean cancelled;
private String[] args;
private final DNClientAPI dnClientAPI;

public CoreCommandExecuteEvent(DNClientAPI dnClientAPI,String[] args) {
this.dnClientAPI = dnClientAPI;
this.args = args;
}

@Override
public boolean isCancelled() {
return cancelled;
}

@Override
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}
}

lorsque vous l'appelez, procédez comme ceci.

Exemple:

CoreCommandExecuteEvent event = new CoreCommandExecuteEvent(client.getDnClientAPI(), args);
client.getEventsFactory().callEvent(event);
if(event.isCancelled()){
Console.print("Command cancelled");
return;
}
// Faire l'action